1. Technical Field
The present invention relates to a system for maintaining state information on a client. More particularly, the present invention relates to transmitting from a server an unmodifiable cookie for storage on a client machine in response to a predefined request to the server.
2. Description of the Related Art
The World Wide Web of the Internet is the most successful distributed application in the history of computing. The architecture of the Web follows a conventional client-server model. The terms “client” and “server” are used to refer to a computer's general role as a requester of data (the client) or provider of data (the server). Under the Web environment. Web browsers reside in clients and Web documents reside in servers. Web clients and Web servers communicate using a protocol called “HyperText Transfer Protocol” (HTTP). A browser opens a connection to a server and initiates a request for a document. The server delivers the requested document, typically in the form of a text document coded in a standard Hypertext Markup Language (HTML) format, and generally when the connection is closed in the above interaction, the server serves a passive role, i.e., it accepts commands from the client and cannot request the client to perform any action.
In the Internet paradigm, a network path to a server is identified by a so-called Uniform Resource Locator (URL) having a special syntax for defining a network connection. Use of ah HTML-compatible browser (e.g., Netscape Navigator) at a client machine involves specification of a link via the URL. In response, the client makes a request to the server identified in the link and receives in return a document formatted according to HTML.
Information in web pages accessed over the Internet commonly is downloaded into the client computer system. In addition to downloading the web page, the web server also may transmit a “cookie” to the browser and receive previously transmitted cookies stored in the permanent memory of the browser.
With reference to Internet transactions, a cookie is a packet of information sent by an HTTP server to a World Wide Web browser and then sent back by the browser each time the browser accesses that server. Cookies can contain any arbitrary information the server chooses, subject to the standards acceptable to a browser, and are used to maintain state between otherwise stateless HTTP transactions. Typically cookies are used to authenticate or identify a registered user of a web site without requiring them to sign in each time they access that site. Other uses for cookies include, e.g. maintaining a “shopping basket” of goods a user selects to purchase during a session at a site, site personalization and, tracking a particular user's access to a site.
FIG. 1 is a flow diagram of a process 100 illustrating how a typical browser operates. The user either selects a hyperlink in a Web browser or specifies a link in a browser, step 102. The client system examines its cookie list for matching cookies that need to be sent to the particular Web server, step 104. Specifically, before the client sends an HTTP request to a Web server, the client compares the URL of the requested Web document against all of the stored cookies. If any of the cookies in the cookie list matches the requested URL then information containing the name/value pairs of the matching cookies is sent along with the HTTP request, step 106. If there are no cookies that match the requested URL then the browser sends the request to the server, step 108. The browser receives the response from the server, step 110. The browser then looks for a cookie in the response from the server, step 112. Any cookies present in the response are stored on the hard drive of client machine, step 114 and the requested page is displayed, step 116. In the event a cookie is not present in the response from the server, the requested page is still displayed, step 116. This process is repeated with each hyperlink selected by the user, step 118. When no hyperlink is selected, the process stops, step 120.
Web merchants commonly use cookies to track subscriptions they provide for Web content such as newsletters, magazines, etc. To entice potential permanent subscribers, the Web merchant often provides a free trial subscription to a user. The trial subscription is tracked using a cookie and once the free period expires, the merchant notifies the user in hopes that the user will purchase a subscription. This marketing model is not without its problems for example, the user has the ability to change his identity and register a subsequent time for the same free subscription. This can be done by removing and/or modifying the cookie resident on his computer. The merchant then loses a potential subscriber. Therefore, an unmodifiable cookie that resides on the client machine would help to alleviate this problem.